package team.future.joke.dao;

import java.util.List;

import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;

/**
 * Title: JokeDao.java<br>
 * Description: <br>
 * Copyright (c) 未来工作室版权所有 2015    <br>
 * Create DateTime: 2015年9月1日 下午7:21:21 <br>
 * @author futurezhu
*/
public interface BaseMongoDao<T> {

	/**
	 * 获取对象
	 * @param query
	 * @return
	 */
	public T getObject(Query query);

	/**
	 * 获取对象列表
	 * @param query
	 * @return
	 */
	public List<T> getObjectList(Query query);

	/**
	 * 获取分页数据
	 * @param query
	 * @param pageIndex
	 * @param pageSize
	 * @return
	 */
	public List<T> getObjectPage(Query query, int pageIndex, int pageSize);

	/**
	 * 更新对象
	 * @param query
	 * @param update
	 * @return
	 */
	public int updateObject(Query query, Update update);

	/**
	 * 插入对象
	 * @param t
	 * @return
	 */
	public void insertObject(T t);

	/**
	 * 删除对象
	 * @param query
	 * @return
	 */
	public void deleteObject(Query query);

	/**
	 * 计算数量
	 * @param query
	 * @return
	 */
	public long countNum(Query query);

	/**
	 * 更新
	 * @param t
	 */
	public void updateObject(T t);

	/**
	 * 根据id查找
	 * @param id
	 */
	public T findObjectById(String id);

}
